import Axios from "axios";

const baseURL = 'https://apis.netstart.cn/mogujie/';

// 创建axios实例对象，以后会基于该实例对象进行网络请求
const http = Axios.create({
    baseURL,
})

// 请求拦截器，判断是否登录成功，每次网络请求向服务器发送 token
http.interceptors.request.use(
    (config) => {
        const token = sessionStorage.token
        if (token) {
            config.headers.Authorization = 'JWT ' + token
        }
        return config
    },
    (error) => {
        return Promise.reject(error)
    }
)

// 相应拦截器
http.interceptors.response.use(
    (response) => {
        // axios 请求成功的数据 一定存放在 response.data 中，直接在连接器中把他解析出来，省的以后再去逐个结构了
        return response
    },
    async (error) => {
        /* 根据你自己公司业务判断*/
        if (error.response) {
            const { status } = error.response
            if (status == 400) {
                // ElMessage.error('请求参数错误')
                console.log('请求参数错误');
            } else if (status == 401) {
                if (!sessionStorage.token) {
                    console.log('未登录');
                    return Promise.reject(error)
                }
            } else if (status == 403) {
                console.log('没有权限，请联系管理员')
            } else if (status == 404) {
                console.log('请求资源不存在');
            } else if (status >= 500) {
                console.log('服务端错误，请联系管理员')
            } else if (error.request) {
                console.log('请求超时，请刷新重试')
            } else {
                console.log(`请求失败:${error.message}`)
            }
            return Promise.reject(error)
        }

    }
)


export default http
